|









| |
H 多媒体
004 播放背景音乐 98-7-04
声明:
Declare Function MCISendString& Lib "MMSYSTEM" (ByVal LPSTRCOMMAND$, ByVal
LPSTRRETURNSTR As Any, ByVal WRETURNLEN%, ByVal HCALLBACK%)
开始播放:
R% = MCISendString&("OPEN EXAMPLE.MID TYPE SEQUENCER ALIAS NN", 0&, 0,
0)
R% = MCISendString&("PLAY NN FROM 0", 0&, 0, 0)
R% = MCISendString&("CLOSE ANIMATION", 0&, 0, 0)
停止:
R% = MCISendString&("OPEN EXAMPLE.MID TYPE SEQUENCER ALIAS NN", 0&, 0,
0)
R% = MCISendString&("STOP NN", 0&, 0, 0)
R% = MCISendString&("CLOSE ANIMATION", 0&, 0, 0)
其中EXAMPLE.MID 为播放的文件,NN为自定义名称标志。
003 取得 WAV 文件信息 98-7-04
WAV 文件基本信息包括如是否立体声,采样频率等。
声明:
Public Const RIFF_ID = 1179011410
Public Const RIFF_WAVE = 1163280727
Public Const RIFF_FMT = 544501094
'Typical header of a simple RIFF WAVE file
Public Type WAVInfo
Riff_Format As Long
chunk_size As Long
ChunkID As Long fmt As Long
Wave_Format As Integer
Channels As Integer '0 = 单声道, 1 = 立体声
SamplesPerSecond As Long
AverageBytesPerSecond As Long '11.025kHz, 22.05kHz, 等
BlockAlign As Integer 'Size of blocks for low level playback
End Type
函数:
Public Function GetWaveInfo(Byval filename As String, Byref w As WAVInfo) _
As Boolean
Dim ff As Integer
ff = FreeFile
On Error GoTo ehandler
Open filename For Binary Access Read As #ff
On Error GoTo ehandler_fo
Get #ff, , w
Close #ff
On Error GoTo ehandler
If w.Riff_Format = RIFF_ID And w.ChunkID = _
RIFF_WAVE And w.fmt = RIFF_FMT Then
GetWaveInfo = True
Else
GetWaveInfo = False
End If
Exit Function
ehandler_fo:
Close #ff
ehandler:
GetWaveInfo = False
End Function
002 系统是否支持声音 98-6-06
声明:
Declare Function waveOutGetNumDevs Lib "winmm.dll" Alias
"waveOutGetNumDevs" () As Long
例子:
Dim i As Integer
i = waveOutGetNumDevs()
If i > 0 Then
MsgBox "系统安装声卡"
Else
MsgBox "系统无声音卡"
End If
001 播放 WAV 文件
Public Declare Function sndPlaySound& Lib "winmm.dll"
Alias"sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long)
Global Const SND_SYNC = &H0
Global Const SND_ASYNC = &H1
Global Const SND_NODEFAULT = &H2
Global Const SND_LOOP = &H8
Global Const SND_NOSTOP = &H10
Sub PlayWav(SoundName As String)
Dim tmpSoundName As String
Dim wFlags%, X%
tmpSoundName = pathWavFiles & SoundName
wFlags% = SND_ASYNC Or SND_NODEFAULT
X% = sndPlaySound(tmpSoundName, wFlags%)
End Sub
|